package org.jeecg.modules.cw.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.cw.entity.*;
import org.jeecg.modules.cw.mapper.CwHealthFormMapper;
import org.jeecg.modules.cw.mapper.CwJbszqkzbMapper;
import org.jeecg.modules.cw.mapper.CwJbszqkzbZhuMapper;
import org.jeecg.modules.cw.service.*;
import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.service.ISysDepartService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Collection;

/**
 * @Description: 基本收支情况总表
 * @Author: jeecg-boot
 * @Date:   2025-09-18
 * @Version: V1.0
 */
@Service
public class CwJbszqkzbZhuServiceImpl extends ServiceImpl<CwJbszqkzbZhuMapper, CwJbszqkzbZhu> implements ICwJbszqkzbZhuService {
	@Autowired
	private ICwHealthFormService cwHealthFormService;
	@Autowired
	private ICwZyryzfgjjService cwZyryzfgjjService;
	@Autowired
	private ICwZyrybxcsmxbService cwZyrybxcsmxbService;
	@Autowired
	private ISysDepartService sysDepartService;
	@Autowired
	private ISysBaseAPI iSysBaseAPI;
	@Autowired
	private ICwSzzbService cwSzzbService;
	@Autowired
	private CwJbszqkzbZhuMapper cwJbszqkzbZhuMapper;
	@Autowired
	private CwJbszqkzbMapper cwJbszqkzbMapper;
	@Autowired
	private ICwXmzcsrbService cwXmzcsrbService;
	//基本收入预算明细提交表
	@Autowired
	private ICwJbsrysTjService cwJbsrysTjService;
	@Autowired
	private ICwJbsrysService cwJbsrysService;
	@Autowired
	private ICwZzrygzmxbService cwZzrygzmxbService;
	@Autowired
	private ICwAqhjwxjbtService cwAqhjwxjbtService;
	@Autowired
	private ICwPpryService cwPpryService;
	@Autowired
	private ICwSyrygzbService cwSyrygzbService;
	@Autowired
	private ICwGyjfszService cwGyjfszService;
	@Autowired
	private ICwCzjbService cwCzjbService;
	@Override
	@Transactional(rollbackFor = Exception.class)
	public void saveMain(CwJbszqkzbZhu cwJbszqkzbZhu, List<CwJbszqkzb> cwJbszqkzbList) {
		LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
		String departIdsByOrgCode = iSysBaseAPI.getDepartIdsByOrgCode(user.getOrgCode());
		SysDepart byId = sysDepartService.getById(departIdsByOrgCode);
		String departName = byId.getDepartName();
		cwJbszqkzbZhu.setUnit(departName);
		cwJbszqkzbZhu.setMainId(user.getId());
		cwJbszqkzbZhu.setState("待提交");
		cwJbszqkzbZhuMapper.insert(cwJbszqkzbZhu);
		if(cwJbszqkzbList!=null && cwJbszqkzbList.size()>0) {
			for(CwJbszqkzb entity:cwJbszqkzbList) {
				if ("职业年金缴费".equals(entity.getProject())){
					entity.setCwPx(18);
				}else if ("离休费".equals(entity.getProject())){
					entity.setCwPx(51);
				}else if ("退休费".equals(entity.getProject())){
					entity.setCwPx(52);
				}else if ("退职役费".equals(entity.getProject())){
					entity.setCwPx(53);
				}else if ("抚恤金".equals(entity.getProject())){
					entity.setCwPx(54);
					entity.setCwTbsm("不预计死亡人员，但已死亡人员如预计明年发放可填列，并说明情况");
				}else if ("其中在职人员".equals(entity.getProject())){
					entity.setCwPx(55);
				}else if ("离退休人员".equals(entity.getProject())){
					entity.setCwPx(56);
				}else if ("救济费".equals(entity.getProject())){
					entity.setCwPx(58);
				}else if ("医疗费补助".equals(entity.getProject())){
					entity.setCalculationBasis("大额医保   万元；离休人员药费  万元；体检费   万元=人数*标准。参公医保   万元。");
					entity.setCwPx(59);
				}else if ("助学金".equals(entity.getProject())){
					entity.setCwPx(60);
				}else if ("奖励金".equals(entity.getProject())){
					entity.setCalculationBasis("独生子女费=人数*标准");
					entity.setCwTbsm("独生子女费说明人数");
					entity.setCwPx(61);
				}else if ("个人农业生产补贴".equals(entity.getProject())){
					entity.setCwPx(62);
				}else if ("代缴社会保险费".equals(entity.getProject())){
					entity.setCwPx(63);
				}else if ("其他对个人和家庭的补助".equals(entity.getProject())){
					entity.setCwPx(64);
				}
				//外键设置
				entity.setYsshj(entity.getFinancial()+entity.getNonFinancials());
				entity.setUnit(cwJbszqkzbZhu.getUnit());
				entity.setYear(cwJbszqkzbZhu.getYear());
				entity.setUserId(user.getId());
				entity.setMainId(cwJbszqkzbZhu.getId());
				cwJbszqkzbMapper.insert(entity);
			}
		}
	}

	@Override
	public List<CwJbszqkzb> getYear(String year,String unit) {
		LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
		String departIdsByOrgCode = iSysBaseAPI.getDepartIdsByOrgCode(user.getOrgCode());
		SysDepart byId = sysDepartService.getById(departIdsByOrgCode);
		String departName = byId.getDepartName();

		// 创建查询条件（new出来的对象不会为null，这里可能是想判断查询结果是否为空）
		LambdaQueryWrapper<CwJbsrys> cwJbsrysLambdaQueryWrapper = new LambdaQueryWrapper<>();
		cwJbsrysLambdaQueryWrapper.eq(CwJbsrys::getYear, year)
				.eq(CwJbsrys::getUnit, departName);
		// 查询数据列表
		List<CwJbsrys> dataList = cwJbsrysService.list(cwJbsrysLambdaQueryWrapper);
////		// 如果查询结果为空，直接返回空列表（根据需求判断是否需要此逻辑）
////		if (dataList == null || dataList.isEmpty()) {
////			return new ArrayList<>(); // 返回空列表而非null，更符合集合返回规范
////		}
//		// 上年结转
//		Double snjz = 0.0;
//		// 财政拨款收入
//		Double czbksr = 0.0;
//		//事业收入
//		Double sysr=0.0;
//		//其中：社保返还
//		Double sbfh=0.0;
//		//科技成果转化收入
//		Double cgzh=0.0;
//		//其他
//		Double qt=0.0;
//		//其他收入（离退休费差额）
//		Double qtsr=0.0;
////		使用非财政拨款结余
//		Double syfcz=0.0;
//
//
//		Double cz=0.0;
//		Double fcz=0.0;
//		Double czjtbz=0.0;
//		Double fczjtbz=0.0;
//		Double czjxgz=0.0;
//		Double fczjxgz=0.0;
//		for (CwJbsrys cwJbsrys : dataList) {
//			if ("上年结转".equals(cwJbsrys.getProject())) {
//				snjz = cwJbsrys.getCwYs();
//			} else if (" 在职".equals(cwJbsrys.getProject()) || " 离退休".equals(cwJbsrys.getProject())) {
//				czbksr += cwJbsrys.getCwYs();
//			}else if (" 技术服务类收入".equals(cwJbsrys.getProject())||" 其他专业业务活动收入".equals(cwJbsrys.getProject())
//		|| " 科技副产品收入".equals(cwJbsrys.getProject())|| " 其他辅助活动收入".equals(cwJbsrys.getProject())|| " 其他业务收入".equals(cwJbsrys.getProject())){
//				sysr += cwJbsrys.getCwYs();
//			}else if ("社保返还收入".equals(cwJbsrys.getProject())) {
//				sbfh = cwJbsrys.getCwYs();
//			}else if ("科技成果转化收入".equals(cwJbsrys.getProject())) {
//				cgzh=cwJbsrys.getCwYs();
//			}else if ("利息预算收入".equals(cwJbsrys.getProject())||"租金预算收入".equals(cwJbsrys.getProject())||"其他收入".equals(cwJbsrys.getProject())) {
//				qt=cwJbsrys.getCwYs();
//			}else if ("其他收入（离退休费差额）".equals(cwJbsrys.getProject())) {
//				qtsr=cwJbsrys.getCwYs();
//			}else if ("使用非财政拨款结余".equals(cwJbsrys.getProject())) {
//				syfcz=cwJbsrys.getCwYs();
//			}
//		}
//		LambdaQueryWrapper<CwZzrygzmxb> cwZzrygzmxbLambdaQueryWrapper = new LambdaQueryWrapper<>();
//		cwZzrygzmxbLambdaQueryWrapper.eq(CwZzrygzmxb::getYear, year)
//				.eq(CwZzrygzmxb::getUnit, departName);
//		for (CwZzrygzmxb cwHealthForm : cwZzrygzmxbService.list(cwZzrygzmxbLambdaQueryWrapper)) {
//				if (cwHealthForm.getSsx()==null){
//					cwHealthForm.setSsx(0.0);
//				}
//				if (cwHealthForm.getJcjxj()==null){
//					cwHealthForm.setJcjxj(0.0);
//				}
//				if (cwHealthForm.getZzMonth()==null){
//					cwHealthForm.setZzMonth(0.0);
//				}
//				if (cwHealthForm.getNdkhj()==null){
//					cwHealthForm.setNdkhj(0.0);
//				}
//				if (cwHealthForm.getHeatingFee()==null){cwHealthForm.setHeatingFee(0.0);}
//				if (cwHealthForm.getHousingSubsidy()==null){cwHealthForm.setHousingSubsidy(0.0);}
//				if (cwHealthForm.getHealthSubsidies()==null){cwHealthForm.setHealthSubsidies(0.0);}
//				if (cwHealthForm.getJkbybt()==null){cwHealthForm.setJkbybt(0.0);}
//				if (cwHealthForm.getHmbt()==null){cwHealthForm.setHmbt(0.0);}
//				if (cwHealthForm.getSanitationFee()==null){cwHealthForm.setSanitationFee(0.0);}
//				if (cwHealthForm.getWivingAllowance()==null){cwHealthForm.setWivingAllowance(0.0);}
//				if (cwHealthForm.getLivingAllowance()==null){cwHealthForm.setLivingAllowance(0.0);}
//				if (cwHealthForm.getXjgj()==null){cwHealthForm.setXjgj(0.0);}
//				if (cwHealthForm.getPostWage()==null){cwHealthForm.setPostWage(0.0);}
//				if (cwHealthForm.getNjtbt()==null){cwHealthForm.setNjtbt(0.0);}
//				if (cwHealthForm.getBasePay()==null){cwHealthForm.setBasePay(0.0);}
//				double a = 0.0;
//				if (cwHealthForm.getZzyy() >= 7.0) {
//					a = cwHealthForm.getPostWage() + cwHealthForm.getXjgz();
//				} else {
//					a = (cwHealthForm.getPostWage() + cwHealthForm.getXjgz()) / 2;
//				}
//// 保留两位小数并四舍五入
//				a = Math.round(a * 100) / 100.0;
//				if ("财政".equals(cwHealthForm.getCzFcz())){
//					if ("退休".equals(cwHealthForm.getZzTx())){
//						cwHealthForm.setNjxgz(a+(cwHealthForm.getJcjxj()*cwHealthForm.getZzMonth())+cwHealthForm.getNdkhj());
//						cz+=cwHealthForm.getBasePay();
//						czjtbz +=cwHealthForm.getNjtbt();
//						czjxgz+=a+(cwHealthForm.getJcjxj()*cwHealthForm.getZzMonth())+cwHealthForm.getNdkhj();
//					}else {
//						cwHealthForm.setNjxgz(a+(cwHealthForm.getJcjxj()*cwHealthForm.getZzMonth())+cwHealthForm.getNdkhj());
//						cwHealthForm.setNjtbt((cwHealthForm.getLivingAllowance()+cwHealthForm.getWivingAllowance()+cwHealthForm.getSanitationFee()+
//								cwHealthForm.getHmbt()+cwHealthForm.getJkbybt()+cwHealthForm.getHealthSubsidies()
//								+cwHealthForm.getHousingSubsidy())*
//								cwHealthForm.getZzMonth()+cwHealthForm.getHeatingFee());
//						cwHealthForm.setBasePay((cwHealthForm.getPostWage()+cwHealthForm.getXjgj())*cwHealthForm.getZzMonth());
//						cz +=(cwHealthForm.getPostWage()+cwHealthForm.getXjgj())*cwHealthForm.getZzMonth();
//						czjtbz=(cwHealthForm.getLivingAllowance()+cwHealthForm.getWivingAllowance()+cwHealthForm.getSanitationFee()+
//								cwHealthForm.getHmbt()+cwHealthForm.getJkbybt()+cwHealthForm.getHealthSubsidies()
//								+cwHealthForm.getHousingSubsidy())*
//								cwHealthForm.getZzMonth()+cwHealthForm.getHeatingFee();
//						czjxgz+=a+(cwHealthForm.getJcjxj()*cwHealthForm.getZzMonth())+cwHealthForm.getNdkhj();
//					}
//				}else {
//					if ("退休".equals(cwHealthForm.getZzTx())){
//						cwHealthForm.setNjxgz(a+(cwHealthForm.getJcjxj()*cwHealthForm.getZzMonth())+cwHealthForm.getNdkhj());
//						fcz+=cwHealthForm.getBasePay();
//						fczjtbz +=cwHealthForm.getNjtbt();
//						fczjxgz+=a+(cwHealthForm.getJcjxj()*cwHealthForm.getZzMonth())+cwHealthForm.getNdkhj();
//					}else {
//						cwHealthForm.setNjxgz(a+(cwHealthForm.getJcjxj()*cwHealthForm.getZzMonth())+cwHealthForm.getNdkhj());
//						cwHealthForm.setNjtbt((cwHealthForm.getLivingAllowance()+cwHealthForm.getWivingAllowance()+cwHealthForm.getSanitationFee()+
//								cwHealthForm.getHmbt()+cwHealthForm.getJkbybt()+cwHealthForm.getHealthSubsidies()
//								+cwHealthForm.getHousingSubsidy())*
//								cwHealthForm.getZzMonth()+cwHealthForm.getHeatingFee());
//						cwHealthForm.setBasePay((cwHealthForm.getPostWage()+cwHealthForm.getXjgj())*cwHealthForm.getZzMonth());
//						fcz +=(cwHealthForm.getPostWage()+cwHealthForm.getXjgj())*cwHealthForm.getZzMonth();
//						fczjtbz=(cwHealthForm.getLivingAllowance()+cwHealthForm.getWivingAllowance()+cwHealthForm.getSanitationFee()+
//								cwHealthForm.getHmbt()+cwHealthForm.getJkbybt()
//								+cwHealthForm.getHealthSubsidies()+cwHealthForm.getHousingSubsidy())*
//								cwHealthForm.getZzMonth()+cwHealthForm.getHeatingFee();
//						fczjxgz+=a+(cwHealthForm.getJcjxj()*cwHealthForm.getZzMonth())+cwHealthForm.getNdkhj();
//					}
//				}
//			}
//		LambdaQueryWrapper<CwAqhjwxjbt> aqhjwxjbtLambdaQueryWrapper = new LambdaQueryWrapper<>();
//		aqhjwxjbtLambdaQueryWrapper.eq(CwAqhjwxjbt::getYear, year)
//				.eq(CwAqhjwxjbt::getUnit, departName);
//		//安全财政
//		Double anquancz=0.0;
//		Double anquanfcz=0.0;
//		Double weixiucz=0.0;
//		Double weixiufcz=0.0;
//		for (CwAqhjwxjbt entity : cwAqhjwxjbtService.list()) {
//			if ("安全".equals(entity.getAqWx())){
//				if ("财政".equals(entity.getCzFcz())){
//					if (entity.getMoney()==null){
//						entity.setMoney(0.0);
//					}
//					anquancz+=entity.getMoney();
//				}else {
//					if (entity.getMoney()==null){
//						entity.setMoney(0.0);
//					}
//					anquanfcz+=entity.getMoney();
//				}
//			}else {
//				if ("财政".equals(entity.getCzFcz())){
//					if (entity.getMoney()==null){
//						entity.setMoney(0.0);
//					}
//					weixiucz+=entity.getMoney();
//				}else {
//					if (entity.getMoney()==null){
//						entity.setMoney(0.0);
//					}
//					weixiufcz+=entity.getMoney();
//				}
//			}
//		}
//		//			养老保险
//		Double acz=0.0;
//
//		Double afcz=0.0;
////			职工基本医疗保险缴费
//		Double bcz=0.0;
//		Double bfcz=0.0;
////			其他社会保障缴费
//		Double ccz=0.0;
//		Double cfcz=0.0;
//		LambdaQueryWrapper<CwZyrybxcsmxb> cwZyrybxcsmxbLambdaQueryWrapper = new LambdaQueryWrapper<>();
//		cwZyrybxcsmxbLambdaQueryWrapper.eq(CwZyrybxcsmxb::getYear, year)
//				.eq(CwZyrybxcsmxb::getUnit, departName);
//		for (CwZyrybxcsmxb entity : cwZyrybxcsmxbService.list(cwZyrybxcsmxbLambdaQueryWrapper)) {
//				if ("财政".equals(entity.getCzFcz())){
//					double aaa=((entity.getPostWage() + entity.getIncrementalStep() + entity.getLivingAllowance() +
//							entity.getWorkAllowance() +entity.getSanitationFee()+ entity.getHnbt() + entity.getJkbybt()
//							+entity.getHealthSubsidies()+entity.getHousingSubsidy()+entity.getBpa())-entity.getHealthSubsidies())*entity.getZzyf();
//					double bbbb = ((entity.getPostWage() + entity.getIncrementalStep() + entity.getLivingAllowance() +
//							entity.getWorkAllowance() + entity.getHnbt() + entity.getJkbybt() + entity.getBpa()) *
//							entity.getZzyf() + (entity.getPostWage() + entity.getIncrementalStep()) / 12 * entity.getZzyf());
//					//其他社会保障缴费
//					double current2 = aaa+(bbbb*0.005)+(bbbb*0.002)+bbbb;
//					ccz = new BigDecimal(ccz).add(new BigDecimal(current2))
//							.setScale(2, BigDecimal.ROUND_HALF_UP)
//							.doubleValue();
//					// 计算当前迭代的养老保险金额
//					double current = ((entity.getPostWage() + entity.getIncrementalStep() + entity.getLivingAllowance() +
//							entity.getWorkAllowance() + entity.getHnbt() + entity.getJkbybt() + entity.getBpa()) *
//							entity.getZzyf() + (entity.getPostWage() + entity.getIncrementalStep()) / 12 * entity.getZzyf()) * 0.2;
//					//职工基本医疗保险缴费
//					double current1=entity.getDebx()+(aaa*0.12)+(aaa*0.05);
//					// 累加并保留两位小数
//					acz = new BigDecimal(acz).add(new BigDecimal(current))
//							.setScale(2, BigDecimal.ROUND_HALF_UP)
//							.doubleValue();
//					bcz = new BigDecimal(bcz).add(new BigDecimal(current1))
//							.setScale(2, BigDecimal.ROUND_HALF_UP)
//							.doubleValue();
//				}else {
//					double aaa=((entity.getPostWage() + entity.getIncrementalStep() + entity.getLivingAllowance() +
//							entity.getWorkAllowance() +entity.getSanitationFee()+ entity.getHnbt() + entity.getJkbybt()
//							+entity.getHealthSubsidies()+entity.getHousingSubsidy()+entity.getBpa())-entity.getHealthSubsidies())*entity.getZzyf();
//					double bbbb = ((entity.getPostWage() + entity.getIncrementalStep() + entity.getLivingAllowance() +
//							entity.getWorkAllowance() + entity.getHnbt() + entity.getJkbybt() + entity.getBpa()) *
//							entity.getZzyf() + (entity.getPostWage() + entity.getIncrementalStep()) / 12 * entity.getZzyf());
//					//其他社会保障缴费
//					double current2 = aaa+(bbbb*0.005)+(bbbb*0.002)+bbbb;
//					cfcz = new BigDecimal(cfcz).add(new BigDecimal(current2))
//							.setScale(2, BigDecimal.ROUND_HALF_UP)
//							.doubleValue();
//					// 计算当前迭代的养老保险金额
//					double current = ((entity.getPostWage() + entity.getIncrementalStep() + entity.getLivingAllowance() +
//							entity.getWorkAllowance() + entity.getHnbt() + entity.getJkbybt() + entity.getBpa()) *
//							entity.getZzyf() + (entity.getPostWage() + entity.getIncrementalStep()) / 12 * entity.getZzyf()) * 0.2;
//					// 累加并保留两位小数
//
//					double current1=entity.getDebx()+(aaa*0.12)+(aaa*0.05);
//					afcz = new BigDecimal(afcz).add(new BigDecimal(current))
//							.setScale(2, BigDecimal.ROUND_HALF_UP)
//							.doubleValue();
//					bfcz = new BigDecimal(bfcz).add(new BigDecimal(current1))
//							.setScale(2, BigDecimal.ROUND_HALF_UP)
//							.doubleValue();
//				}
//			}
//		LambdaQueryWrapper<CwZyryzfgjj> cwZyryzfgjjLambdaQueryWrapper = new LambdaQueryWrapper<>();
//		cwZyryzfgjjLambdaQueryWrapper.eq(CwZyryzfgjj::getYear,year)
//				.eq(CwZyryzfgjj::getUnit,departName);
//		Double acz1=0.0;
//		Double afcz1=0.0;
//		for (CwZyryzfgjj entity : cwZyryzfgjjService.list(cwZyryzfgjjLambdaQueryWrapper)) {
//			if ("财政".equals(entity.getCzFcz())){
//				Double hj=entity.getPostWage()+entity.getIncrementalStep()+entity.getLivingAllowance()
//						+entity.getWorkAllowance()+entity.getSanitationFee()+entity.getHmbt()+
//						entity.getJkbybt()+entity.getHealthSubsidies()+entity.getHousingSubsidy()+entity.getJcjxj();
//				Double	current = hj*entity.getZzyf()+(entity.getPostWage()+entity.getIncrementalStep()+
//						entity.getNdkhj()+entity.getApj()+entity.getWxjbt())/12*entity.getZzyf();
//				acz1 = new BigDecimal(acz).add(new BigDecimal(current))
//						.setScale(2, BigDecimal.ROUND_HALF_UP)
//						.doubleValue();
//			}else {
//				Double hj=entity.getPostWage()+entity.getIncrementalStep()+entity.getLivingAllowance()
//						+entity.getWorkAllowance()+entity.getSanitationFee()+entity.getHmbt()+
//						entity.getJkbybt()+entity.getHealthSubsidies()+entity.getHousingSubsidy()+entity.getJcjxj();
//				Double	current = hj*entity.getZzyf()+(entity.getPostWage()+entity.getIncrementalStep()+
//						entity.getNdkhj()+entity.getApj()+entity.getWxjbt())/12*entity.getZzyf();
//				afcz1 = new BigDecimal(afcz).add(new BigDecimal(current))
//						.setScale(2, BigDecimal.ROUND_HALF_UP)
//						.doubleValue();
//			}
//		}
//		LambdaQueryWrapper<CwHealthForm> cwHealthFormLambdaQueryWrapper = new LambdaQueryWrapper<>();
//		cwHealthFormLambdaQueryWrapper.eq(CwHealthForm::getYear,year).eq(CwHealthForm::getUnit,departName);
//		Double acz2=0.0;
//		Double afcz2=0.0;
//		for (CwHealthForm entity : cwHealthFormService.list(cwHealthFormLambdaQueryWrapper)) {
//			if ("财政".equals(entity.getCzFcz())){
//				Double current=entity.getMoney();
//				acz2 = new BigDecimal(acz).add(new BigDecimal(current))
//						.setScale(2, BigDecimal.ROUND_HALF_UP)
//						.doubleValue();
//			}else {
//				Double current=entity.getMoney();
//				afcz2 = new BigDecimal(afcz).add(new BigDecimal(current))
//						.setScale(2, BigDecimal.ROUND_HALF_UP)
//						.doubleValue();
//			}
//		}
//		LambdaQueryWrapper<CwPpry> cwPpryLambdaQueryWrapper = new LambdaQueryWrapper<>();
//		cwPpryLambdaQueryWrapper.eq(CwPpry::getYear,year).eq(CwPpry::getUnit,departName);
//		//其他工资福利支出
//		Double acz3=0.0;
//		Double afcz3=0.0;
//		for (CwPpry entity : cwPpryService.list(cwPpryLambdaQueryWrapper)) {
//			//其他工资福利支出
//			if ("财政".equals(entity.getCzFcz())){
//				Double heji =entity.getPostWage()+entity.getIncrementalStep()+entity.getLivingAllowance()+
//						entity.getWorkAllowance()+entity.getSanitationFee()+entity.getJkbybt()+
//						entity.getHealthSubsidies()+ entity.getHousingSubsidy()+ entity.getJcjxj();
//				//全年工资小计
//				long gzxj = Math.round(heji * 12 + entity.getPostWage() + entity.getXjgz() + entity.getMeritPay() + entity.getSafety());
//				// 计算shebao并保留两位小数
//				Double shebaoTemp = (entity.getPostWage() + entity.getXjgz() + entity.getLivingAllowance() + entity.getWorkAllowance() +
//						entity.getJkbybt() + entity.getJcjxj()) * 12 + entity.getPostWage() + entity.getXjgz();
//				Double shebao = new BigDecimal(shebaoTemp).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//
//				// 计算yibao并保留两位小数
//				Double yibaoTemp = (heji - entity.getIncrementalStep() + entity.getXjgz()) * 12;
//				Double yibao = new BigDecimal(yibaoTemp).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//
//				// 计算gjjn并保留两位小数
//				Double gjjnTemp = (heji - entity.getIncrementalStep() + entity.getXjgz()) * 12 + (entity.getPostWage() + entity.getXjgz()) + entity.getMeritPay() + entity.getSafety();
//				Double gjjn = new BigDecimal(gjjnTemp).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//
//				// 各分项计算并分别保留两位小数
//				Double item1 = new BigDecimal(shebao * 0.16).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//				Double item2 = new BigDecimal(yibao * 0.12).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//				Double item3 = new BigDecimal(shebao * 0.005).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//				Double item4 = new BigDecimal(shebao * 0.0035).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//				Double item5 = new BigDecimal(gjjn * 0.12).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//
//				// 计算gjz（总和）
//				Double gjz = new BigDecimal(item1 + item2 + item3 + item4 + item5 + entity.getDeyb()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//
//				long lwf = Math.round((gjz + gzxj + entity.getHeatingFee()) * 0.03);//65.12+76.32+20.35+142.45+
//				acz3=gzxj+gjz+lwf+entity.getHeatingFee();
//			}else {
//				Double heji =entity.getPostWage()+entity.getIncrementalStep()+entity.getLivingAllowance()+
//						entity.getWorkAllowance()+entity.getSanitationFee()+entity.getJkbybt()+
//						entity.getHealthSubsidies()+ entity.getHousingSubsidy()+ entity.getJcjxj();
//				//全年工资小计
//				long gzxj = Math.round(heji * 12 + entity.getPostWage() + entity.getXjgz() + entity.getMeritPay() + entity.getSafety());
//				// 计算shebao并保留两位小数
//				Double shebaoTemp = (entity.getPostWage() + entity.getXjgz() + entity.getLivingAllowance() + entity.getWorkAllowance() +
//						entity.getJkbybt() + entity.getJcjxj()) * 12 + entity.getPostWage() + entity.getXjgz();
//				Double shebao = new BigDecimal(shebaoTemp).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//
//				// 计算yibao并保留两位小数
//				Double yibaoTemp = (heji - entity.getIncrementalStep() + entity.getXjgz()) * 12;
//				Double yibao = new BigDecimal(yibaoTemp).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//
//				// 计算gjjn并保留两位小数
//				Double gjjnTemp = (heji - entity.getIncrementalStep() + entity.getXjgz()) * 12 + (entity.getPostWage() + entity.getXjgz()) + entity.getMeritPay() + entity.getSafety();
//				Double gjjn = new BigDecimal(gjjnTemp).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//
//				// 各分项计算并分别保留两位小数
//				Double item1 = new BigDecimal(shebao * 0.16).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//				Double item2 = new BigDecimal(yibao * 0.12).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//				Double item3 = new BigDecimal(shebao * 0.005).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//				Double item4 = new BigDecimal(shebao * 0.0035).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//				Double item5 = new BigDecimal(gjjn * 0.12).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//
//				// 计算gjz（总和）
//				Double gjz = new BigDecimal(item1 + item2 + item3 + item4 + item5 + entity.getDeyb()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//				long lwf = Math.round((gjz + gzxj + entity.getHeatingFee()) * 0.03);//65.12+76.32+20.35+142.45+
//				afcz3=gzxj+gjz+lwf+entity.getHeatingFee();
//			}
//		}
//		LambdaQueryWrapper<CwSyrygzb> cwSyrygzbLambdaQueryWrapper = new LambdaQueryWrapper<>();
//		cwSyrygzbLambdaQueryWrapper.eq(CwSyrygzb::getYear,year).eq(CwSyrygzb::getUnit,departName);
//		int size = cwSyrygzbService.list().size();
//
//		Double acz4=0.0;
//		Double afcz4=0.0;
//		for (CwSyrygzb entity : cwSyrygzbService.list(cwSyrygzbLambdaQueryWrapper)) {
//			if ("财政".equals(entity.getCzFcz())){
//				acz4+=entity.getLivingAllowance();
//			}else {
//				afcz4+=entity.getLivingAllowance();
//			}
//		}
		// 创建结果列表并添加对象
		List<CwJbszqkzb> resultList = new ArrayList<>();
		resultList.add(createZqkzb("","上年结转",0.0,0.0,1,"",""));
		resultList.add(createZqkzb("","财政拨款收入",0.0,0.0,2,"",""));
		resultList.add(createZqkzb("","事业收入",0.0,0.0,3,"",""));
		resultList.add(createZqkzb("","其中社保返还",0.0,0.0,5,"",""));
		resultList.add(createZqkzb("","成果转化",0.0,0.0,6,"2026年收入","按预计的当年成果转化收入减上缴20%院科研发展基础后的净额填列，但要提供计算说明，说明收入来源及计算过程"));
		resultList.add(createZqkzb("","其他",0.0,0.0,7,"",""));
		resultList.add(createZqkzb("","其他收入离退休费差额",0.0,0.0,8,"","离退休经费财政缺口部分"));
			resultList.add(createZqkzb("","使用非财政拨款结余",0.0,0.0,9,"",""));
		resultList.add(createZqkzb("","其他收入",0.0,0.0,4,"",""));
		resultList.add(createZqkzb("工资福利支出","基本工资",0.0,0.0,12,"",""));
		resultList.add(createZqkzb("工资福利支出","津贴补贴",0.0,0.0,13,"**年-**年未休假补贴  万元",""));
		resultList.add(createZqkzb("工资福利支出","奖金",0.0,0.0,14,"",""));
		resultList.add(createZqkzb("工资福利支出","伙食补助费",0.0,0.0,15,"",""));
		resultList.add(createZqkzb("工资福利支出","绩效工资",0.0,0.0,16,"安全奖  万元；成果转化奖   万元【2025年成果转化收入：截至7月末收入  万元，预计年底收入（含截至7月末收入）  万元】。","说明在职人员安全奖测算依据，计算过程；成果转化奖要填报计算说明，说明收入来源及计算过程"));

		resultList.add(createZqkzb("工资福利支出","机关事业单位基本养老保险缴费",0.0,0.0,17,"养老保险",""));
		resultList.add(createZqkzb("工资福利支出","职业年金缴费",0.0,0.0,18,"",""));

		resultList.add(createZqkzb("工资福利支出","职工基本医疗保险缴费",0.0,0.0,19,"医疗保险   万元；大额医保   万元；参公医保   万元。",""));
		resultList.add(createZqkzb("工资福利支出","其他社会保障缴费",0.0,0.0,20,"",""));
		resultList.add(createZqkzb("工资福利支出","住房公积金",0.0,0.0,21,"住房公积金",""));
		resultList.add(createZqkzb("工资福利支出","医疗费",0.0,0.0,22,"体检费   万元=人数*标准（元/人）",""));
		resultList.add(createZqkzb("工资福利支出","其他工资福利支出",0.0,0.0,23,"院派遣人员    万元；所派遣人员    万元；退休返聘   万元；借调人员    万元。",""));

// 1. 仅查询1次CwGyjfsz表：获取当前年度+部门的所有数据，后续从中提取所有费用字段
			LambdaQueryWrapper<CwGyjfsz> gyjfszWrapper = new LambdaQueryWrapper<>();
		gyjfszWrapper.eq(CwGyjfsz::getNd, year).eq(CwGyjfsz::getDw, departName);
		List<CwGyjfsz> gyjfszList = cwGyjfszService.list(gyjfszWrapper);

// 初始化CwGyjfsz表所有费用字段的“财政/非财政”累加值（默认0.0）
// 商品和服务支出（排序25-49）
		Double bgfcz = 0.0, bhffcz = 0.0; // 办公费（字段bgf）
		Double ysfcz = 0.0, ysffcz = 0.0; // 印刷费（字段ysf）
		Double sxfcz = 0.0, sxffcz = 0.0; // 手续费（字段sxf）
		Double sfcz = 0.0, sffcz = 0.0;   // 水费（字段sf）
		Double dfcz = 0.0, dffcz = 0.0;   // 电费（字段df）
		Double ydfcz = 0.0, ydffcz = 0.0; // 邮电费（字段ydf）
		Double qnfcz = 0.0, qnffcz = 0.0; // 取暖费（字段qnf）
		Double wyglfcz = 0.0, wyglffcz = 0.0; // 物业管理费（字段wyglf）
		Double clfcz = 0.0, clffcz = 0.0; // 差旅费（字段clf）
		Double ygcjfcz = 0.0, ygcjffcz = 0.0; // 因公出境费用（字段ygcjf）
		Double whfcz = 0.0, whffcz = 0.0; // 维护费（字段whf）
		Double zlfcz = 0.0, zlffcz = 0.0; // 租赁费（字段zlf）
		Double hyfcz = 0.0, hyffcz = 0.0; // 会议费（字段hyf）
		Double pxfcz = 0.0, pxffcz = 0.0; // 培训费（字段pxf）
		Double gwjdfcz = 0.0, gwjdffcz = 0.0; // 公务接待费（字段gwjd）
		Double zyclcz = 0.0, zyclffcz = 0.0; // 专用材料费（字段zycl）
		Double bzgzfcz = 0.0, bzgzfffcz = 0.0; // 被装购置费（字段bzgzf）
		Double zyrlfcz = 0.0, zyrlffcz = 0.0; // 专用燃料费（字段zyrlf）
		Double lwfcz = 0.0, lwffcz = 0.0; // 劳务费（字段lwf）
		Double wtywfcz = 0.0, wtywffcz = 0.0; // 委托业务费（字段wtywf）
		Double ghjfcz = 0.0, ghjffcz = 0.0; // 工会经费（字段ghjf）
		Double gwcyccz = 0.0, gwcycffcz = 0.0; // 公务用车运行维护费（字段gwcyc）
		Double qtjtfycz = 0.0, qtjtfyffcz = 0.0; // 其他交通费用（字段qtjtfy）
		Double sjcz = 0.0, sjffcz = 0.0;   // 税金及附加费用（字段sj）
		Double qtspcz = 0.0, qtspffcz = 0.0; // 其他商品和服务支出（字段qtsp）
// 资本性支出（排序66-81）
		Double fwcz = 0.0, fwffcz = 0.0;   // 房屋建筑物购建（字段fw）
		Double bgcz = 0.0, bgffcz = 0.0;   // 办公设备购置（字段bg）
		Double zycz = 0.0, zyffcz = 0.0;   // 专用设备购置（字段zy）
		Double jccz = 0.0, jcffcz = 0.0;   // 基础设施建设（字段jc）
		Double dxcz = 0.0, dxffcz = 0.0;   // 大型修缮（字段dx）
		Double xxcz = 0.0, xxffcz = 0.0;   // 信息网络及软件购置更新（字段xx）
		Double wzcz = 0.0, wzffcz = 0.0;   // 物资储备（字段wz）
		Double tdcz = 0.0, tdffcz = 0.0;   // 土地补偿（字段td）
		Double azcz = 0.0, azffcz = 0.0;   // 安置补助（字段az）
		Double dsfzwcz = 0.0, dsfzwffcz = 0.0; // 地上附着物和青苗补偿（字段dsfzw）
		Double cqcz = 0.0, cqffcz = 0.0;   // 拆迁补偿（字段cq）
		Double gwccz = 0.0, gwcffcz = 0.0; // 公务用车购置（字段gwc）
		Double qtjtcz = 0.0, qtjtffcz = 0.0; // 其他交通工具购置（字段qtjt）
		Double wwclcz1 = 0.0, wwclffcz1 = 0.0; // 文物和陈列品购置（字段wwcl）
		Double wwclcz2 = 0.0, wwclffcz2 = 0.0; // 无形资产购置（字段wwcl）
		Double qtzbszcz = 0.0, qtzbszcffcz = 0.0; // 其他资本性支出（字段qtzbszc）

// 循环CwGyjfsz数据：按“财政/非财政”分类，累加所有费用字段
		for (CwGyjfsz item : gyjfszList) {
			String jflx = item.getJflx(); // 费用类型（财政/非财政）
			boolean isFinancial = "财政".equals(jflx);

			// 1. 商品和服务支出字段提取
			bgfcz += isFinancial ? safeParseDouble(item.getBgf()) : 0.0;
			bhffcz += !isFinancial ? safeParseDouble(item.getBgf()) : 0.0;
			ysfcz += isFinancial ? safeParseDouble(item.getYsf()) : 0.0;
			ysffcz += !isFinancial ? safeParseDouble(item.getYsf()) : 0.0;
			sxfcz += isFinancial ? safeParseDouble(item.getSxf()) : 0.0;
			sxffcz += !isFinancial ? safeParseDouble(item.getSxf()) : 0.0;
			sfcz += isFinancial ? safeParseDouble(item.getSf()) : 0.0;
			sffcz += !isFinancial ? safeParseDouble(item.getSf()) : 0.0;
			dfcz += isFinancial ? safeParseDouble(item.getDf()) : 0.0;
			dffcz += !isFinancial ? safeParseDouble(item.getDf()) : 0.0;
			ydfcz += isFinancial ? safeParseDouble(item.getYdf()) : 0.0;
			ydffcz += !isFinancial ? safeParseDouble(item.getYdf()) : 0.0;
			qnfcz += isFinancial ? safeParseDouble(item.getQnf()) : 0.0;
			qnffcz += !isFinancial ? safeParseDouble(item.getQnf()) : 0.0;
			wyglfcz += isFinancial ? safeParseDouble(item.getWyglf()) : 0.0;
			wyglffcz += !isFinancial ? safeParseDouble(item.getWyglf()) : 0.0;
			clfcz += isFinancial ? safeParseDouble(item.getClf()) : 0.0;
			clffcz += !isFinancial ? safeParseDouble(item.getClf()) : 0.0;
			ygcjfcz += isFinancial ? safeParseDouble(item.getYgcjf()) : 0.0;
			ygcjffcz += !isFinancial ? safeParseDouble(item.getYgcjf()) : 0.0;
			whfcz += isFinancial ? safeParseDouble(item.getWhf()) : 0.0;
			whffcz += !isFinancial ? safeParseDouble(item.getWhf()) : 0.0;
			zlfcz += isFinancial ? safeParseDouble(item.getZlf()) : 0.0;
			zlffcz += !isFinancial ? safeParseDouble(item.getZlf()) : 0.0;
			hyfcz += isFinancial ? safeParseDouble(item.getHyf()) : 0.0;
			hyffcz += !isFinancial ? safeParseDouble(item.getHyf()) : 0.0;
			pxfcz += isFinancial ? safeParseDouble(item.getPxf()) : 0.0;
			pxffcz += !isFinancial ? safeParseDouble(item.getPxf()) : 0.0;
			gwjdfcz += isFinancial ? safeParseDouble(item.getGwjd()) : 0.0;
			gwjdffcz += !isFinancial ? safeParseDouble(item.getGwjd()) : 0.0;
			zyclcz += isFinancial ? safeParseDouble(item.getZycl()) : 0.0;
			zyclffcz += !isFinancial ? safeParseDouble(item.getZycl()) : 0.0;
			bzgzfcz += isFinancial ? safeParseDouble(item.getBzgzf()) : 0.0;
			bzgzfffcz += !isFinancial ? safeParseDouble(item.getBzgzf()) : 0.0;
			zyrlfcz += isFinancial ? safeParseDouble(item.getZyrlf()) : 0.0;
			zyrlffcz += !isFinancial ? safeParseDouble(item.getZyrlf()) : 0.0;
			lwfcz += isFinancial ? safeParseDouble(item.getLwf()) : 0.0;
			lwffcz += !isFinancial ? safeParseDouble(item.getLwf()) : 0.0;
			wtywfcz += isFinancial ? safeParseDouble(item.getWtywf()) : 0.0;
			wtywffcz += !isFinancial ? safeParseDouble(item.getWtywf()) : 0.0;
			ghjfcz += isFinancial ? safeParseDouble(item.getGhjf()) : 0.0;
			ghjffcz += !isFinancial ? safeParseDouble(item.getGhjf()) : 0.0;
			gwcyccz += isFinancial ? safeParseDouble(item.getGwcyc()) : 0.0;
			gwcycffcz += !isFinancial ? safeParseDouble(item.getGwcyc()) : 0.0;
			qtjtfycz += isFinancial ? safeParseDouble(item.getQtjtfy()) : 0.0;
			qtjtfyffcz += !isFinancial ? safeParseDouble(item.getQtjtfy()) : 0.0;
			sjcz += isFinancial ? safeParseDouble(item.getSj()) : 0.0;
			sjffcz += !isFinancial ? safeParseDouble(item.getSj()) : 0.0;
			qtspcz += isFinancial ? safeParseDouble(item.getQtsp()) : 0.0;
			qtspffcz += !isFinancial ? safeParseDouble(item.getQtsp()) : 0.0;

			// 2. 资本性支出字段提取
			fwcz += isFinancial ? safeParseDouble(item.getFw()) : 0.0;
			fwffcz += !isFinancial ? safeParseDouble(item.getFw()) : 0.0;
			bgcz += isFinancial ? safeParseDouble(item.getBg()) : 0.0;
			bgffcz += !isFinancial ? safeParseDouble(item.getBg()) : 0.0;
			zycz += isFinancial ? safeParseDouble(item.getZy()) : 0.0;
			zyffcz += !isFinancial ? safeParseDouble(item.getZy()) : 0.0;
			jccz += isFinancial ? safeParseDouble(item.getJc()) : 0.0;
			jcffcz += !isFinancial ? safeParseDouble(item.getJc()) : 0.0;
			dxcz += isFinancial ? safeParseDouble(item.getDx()) : 0.0;
			dxffcz += !isFinancial ? safeParseDouble(item.getDx()) : 0.0;
			xxcz += isFinancial ? safeParseDouble(item.getXx()) : 0.0;
			xxffcz += !isFinancial ? safeParseDouble(item.getXx()) : 0.0;
			wzcz += isFinancial ? safeParseDouble(item.getWz()) : 0.0;
			wzffcz += !isFinancial ? safeParseDouble(item.getWz()) : 0.0;
			tdcz += isFinancial ? safeParseDouble(item.getTd()) : 0.0;
			tdffcz += !isFinancial ? safeParseDouble(item.getTd()) : 0.0;
			azcz += isFinancial ? safeParseDouble(item.getAz()) : 0.0;
			azffcz += !isFinancial ? safeParseDouble(item.getAz()) : 0.0;
			dsfzwcz += isFinancial ? safeParseDouble(item.getDsfzw()) : 0.0;
			dsfzwffcz += !isFinancial ? safeParseDouble(item.getDsfzw()) : 0.0;
			cqcz += isFinancial ? safeParseDouble(item.getCq()) : 0.0;
			cqffcz += !isFinancial ? safeParseDouble(item.getCq()) : 0.0;
			gwccz += isFinancial ? safeParseDouble(item.getGwc()) : 0.0;
			gwcffcz += !isFinancial ? safeParseDouble(item.getGwc()) : 0.0;
			qtjtcz += isFinancial ? safeParseDouble(item.getQtjt()) : 0.0;
			qtjtffcz += !isFinancial ? safeParseDouble(item.getQtjt()) : 0.0;
			wwclcz1 += isFinancial ? safeParseDouble(item.getWwcl()) : 0.0; // 文物和陈列品
			wwclffcz1 += !isFinancial ? safeParseDouble(item.getWwcl()) : 0.0;
			wwclcz2 += isFinancial ? safeParseDouble(item.getWwcl()) : 0.0; // 无形资产购置
			wwclffcz2 += !isFinancial ? safeParseDouble(item.getWwcl()) : 0.0;
			qtzbszcz += isFinancial ? safeParseDouble(item.getQtzbszc()) : 0.0;
			qtzbszcffcz += !isFinancial ? safeParseDouble(item.getQtzbszc()) : 0.0;
		}

// 2. 仅查询1次CwCzjb表：获取当前年度所有数据，后续从中提取所有费用字段
		LambdaQueryWrapper<CwCzjb> czjbWrapper = new LambdaQueryWrapper<>();
		czjbWrapper.eq(CwCzjb::getNd, year).eq(CwCzjb::getUnit,departName);
		List<CwCzjb> czjbList = cwCzjbService.list(czjbWrapper);

// 初始化CwCzjb表所有费用字段的“财政/非财政”累加值（默认0.0）
// 商品和服务支出（排序25-49）
		Double jbbgfcz = 0.0, jbbgffcz = 0.0; // 办公费（字段bgf）
		Double jbyscz = 0.0, jbysffcz = 0.0;   // 印刷费（字段ys）
		Double jbsxcz = 0.0, jbsxffcz = 0.0;   // 手续费（字段sx）
		Double jbsfcz = 0.0, jbsffcz = 0.0;   // 水费（字段sf）
		Double jbdfcz = 0.0, jbdffcz = 0.0;   // 电费（字段df）
		Double jbydcz = 0.0, jbydffcz = 0.0;   // 邮电费（字段yd）
		Double jbqycz = 0.0, jbqynffcz = 0.0;  // 取暖费（字段qn）
		Double jbwycz = 0.0, jbwyffcz = 0.0;   // 物业管理费（字段wy）
		Double jbclcz = 0.0, jbclffcz = 0.0;   // 差旅费（字段cl）
		Double jbcgcz = 0.0, jbcgffcz = 0.0;   // 因公出境费用（字段cg）
		Double jbwxcz = 0.0, jbwxffcz = 0.0;   // 维护费（字段wx）
		Double jbzlcz = 0.0, jbzlffcz = 0.0;   // 租赁费（字段zl）
		Double jbhycz = 0.0, jbhyffcz = 0.0;   // 会议费（字段hy）
		Double jbpxcz = 0.0, jbpxffcz = 0.0;   // 培训费（字段px）
		Double jbgwjdcz = 0.0, jbgwjdffcz = 0.0; // 公务接待费（字段gwjd）
		Double jbztclcz = 0.0, jbztclffcz = 0.0; // 专用材料费（字段ztcl）
		Double jbbzcz = 0.0, jbbzffcz = 0.0;   // 被装购置费（字段bz）
		Double jbzyrlcz = 0.0, jbzyrlffcz = 0.0; // 专用燃料费（字段zyrl）
		Double jblwcz = 0.0, jblwffcz = 0.0;   // 劳务费（字段lw）
		Double jbwtcz = 0.0, jbwtffcz = 0.0;   // 委托业务费（字段wt）
		Double jbghcz = 0.0, jbghffcz = 0.0;   // 工会经费（字段gh）
		Double jbgwcz = 0.0, jbgwffcz = 0.0;   // 公务用车运行维护费（字段gw）
		Double jbqtjtcz = 0.0, jbqtjtffcz = 0.0; // 其他交通费用（字段qtjt）
		Double jbsjcz = 0.0, jbsjffcz = 0.0;   // 税金及附加费用（字段sj）
		Double jbqtspcz = 0.0, jbqtspffcz = 0.0; // 其他商品和服务支出（字段qtsp）
// 资本性支出（排序66-81）
		Double jbfwcz = 0.0, jbfwffcz = 0.0;   // 房屋建筑物购建（字段fw）
		Double jbbgcz2 = 0.0, jbbgffcz2 = 0.0; // 办公设备购置（字段bg）
		Double jbzycz = 0.0, jbzyffcz = 0.0;   // 专用设备购置（字段zy）
		Double jbjccz = 0.0, jbjcffcz = 0.0;   // 基础设施建设（字段jp）
		Double jbdxcz = 0.0, jbdxffcz = 0.0;   // 大型修缮（字段dx）
		Double jbxxcz = 0.0, jbxxffcz = 0.0;   // 信息网络及软件购置更新（字段xx）
		Double jbwzcz = 0.0, jbwzffcz = 0.0;   // 物资储备（字段wz）
		Double jbtdcz = 0.0, jbtdffcz = 0.0;   // 土地补偿（字段td）
		Double jbazcz = 0.0, jbazffcz = 0.0;   // 安置补助（字段az）
		Double jbdspzcz = 0.0, jbdspzffcz = 0.0; // 地上附着物和青苗补偿（字段dspz）
		Double jbcqcz = 0.0, jbcqffcz = 0.0;   // 拆迁补偿（字段cq）
		Double jbgwccz = 0.0, jbgwcffcz = 0.0; // 公务用车购置（字段gwc）
		Double jbqtcz = 0.0, jbqtffcz = 0.0;   // 其他交通工具购置（字段qt）
		Double jbwwcz = 0.0, jbwwffcz = 0.0;   // 文物和陈列品购置（字段ww）
		Double jbwxzccz = 0.0, jbwxzcffcz = 0.0; // 无形资产购置（字段wxzc）
		Double jbzbxzcz = 0.0, jbzbxzcffcz = 0.0; // 其他资本性支出（字段zbxzc）

// 循环CwCzjb数据：按“财政/非财政”分类，累加所有费用字段
		for (CwCzjb item : czjbList) {
			String xmlx = item.getXmlx(); // 项目类型（财政/非财政）
			boolean isFinancial = "财政".equals(xmlx);

			// 1. 商品和服务支出字段提取
			jbbgfcz += isFinancial ? safeParseDouble(item.getBgf()) : 0.0;
			jbbgffcz += !isFinancial ? safeParseDouble(item.getBgf()) : 0.0;
			jbyscz += isFinancial ? safeParseDouble(item.getYs()) : 0.0;
			jbysffcz += !isFinancial ? safeParseDouble(item.getYs()) : 0.0;
			jbsxcz += isFinancial ? safeParseDouble(item.getSx()) : 0.0;
			jbsxffcz += !isFinancial ? safeParseDouble(item.getSx()) : 0.0;
			jbsfcz += isFinancial ? safeParseDouble(item.getSf()) : 0.0;
			jbsffcz += !isFinancial ? safeParseDouble(item.getSf()) : 0.0;
			jbdfcz += isFinancial ? safeParseDouble(item.getDf()) : 0.0;
			jbdffcz += !isFinancial ? safeParseDouble(item.getDf()) : 0.0;
			jbydcz += isFinancial ? safeParseDouble(item.getYd()) : 0.0;
			jbydffcz += !isFinancial ? safeParseDouble(item.getYd()) : 0.0;
			jbqycz += isFinancial ? safeParseDouble(item.getQn()) : 0.0;
			jbqynffcz += !isFinancial ? safeParseDouble(item.getQn()) : 0.0;
			jbwycz += isFinancial ? safeParseDouble(item.getWy()) : 0.0;
			jbwyffcz += !isFinancial ? safeParseDouble(item.getWy()) : 0.0;
			jbclcz += isFinancial ? safeParseDouble(item.getCl()) : 0.0;
			jbclffcz += !isFinancial ? safeParseDouble(item.getCl()) : 0.0;
			jbcgcz += isFinancial ? safeParseDouble(item.getCg()) : 0.0;
			jbcgffcz += !isFinancial ? safeParseDouble(item.getCg()) : 0.0;
			jbwxcz += isFinancial ? safeParseDouble(item.getWx()) : 0.0;
			jbwxffcz += !isFinancial ? safeParseDouble(item.getWx()) : 0.0;
			jbzlcz += isFinancial ? safeParseDouble(item.getZl()) : 0.0;
			jbzlffcz += !isFinancial ? safeParseDouble(item.getZl()) : 0.0;
			jbhycz += isFinancial ? safeParseDouble(item.getHy()) : 0.0;
			jbhyffcz += !isFinancial ? safeParseDouble(item.getHy()) : 0.0;
			jbpxcz += isFinancial ? safeParseDouble(item.getPx()) : 0.0;
			jbpxffcz += !isFinancial ? safeParseDouble(item.getPx()) : 0.0;
			jbgwjdcz += isFinancial ? safeParseDouble(item.getGwjd()) : 0.0;
			jbgwjdffcz += !isFinancial ? safeParseDouble(item.getGwjd()) : 0.0;
			jbztclcz += isFinancial ? safeParseDouble(item.getZtcl()) : 0.0;
			jbztclffcz += !isFinancial ? safeParseDouble(item.getZtcl()) : 0.0;
			jbbzcz += isFinancial ? safeParseDouble(item.getBz()) : 0.0;
			jbbzffcz += !isFinancial ? safeParseDouble(item.getBz()) : 0.0;
			jbzyrlcz += isFinancial ? safeParseDouble(item.getZyrl()) : 0.0;
			jbzyrlffcz += !isFinancial ? safeParseDouble(item.getZyrl()) : 0.0;
			jblwcz += isFinancial ? safeParseDouble(item.getLw()) : 0.0;
			jblwffcz += !isFinancial ? safeParseDouble(item.getLw()) : 0.0;
			jbwtcz += isFinancial ? safeParseDouble(item.getWt()) : 0.0;
			jbwtffcz += !isFinancial ? safeParseDouble(item.getWt()) : 0.0;
			jbghcz += isFinancial ? safeParseDouble(item.getGh()) : 0.0;
			jbghffcz += !isFinancial ? safeParseDouble(item.getGh()) : 0.0;
			jbgwcz += isFinancial ? safeParseDouble(item.getGw()) : 0.0;
			jbgwffcz += !isFinancial ? safeParseDouble(item.getGw()) : 0.0;
			jbqtjtcz += isFinancial ? safeParseDouble(item.getQtjt()) : 0.0;
			jbqtjtffcz += !isFinancial ? safeParseDouble(item.getQtjt()) : 0.0;
			jbsjcz += isFinancial ? safeParseDouble(item.getSj()) : 0.0;
			jbsjffcz += !isFinancial ? safeParseDouble(item.getSj()) : 0.0;
			jbqtspcz += isFinancial ? safeParseDouble(item.getQtsp()) : 0.0;
			jbqtspffcz += !isFinancial ? safeParseDouble(item.getQtsp()) : 0.0;

			// 2. 资本性支出字段提取
			jbfwcz += isFinancial ? safeParseDouble(item.getFw()) : 0.0;
			jbfwffcz += !isFinancial ? safeParseDouble(item.getFw()) : 0.0;
			jbbgcz2 += isFinancial ? safeParseDouble(item.getBg()) : 0.0;
			jbbgffcz2 += !isFinancial ? safeParseDouble(item.getBg()) : 0.0;
			jbzycz += isFinancial ? safeParseDouble(item.getZy()) : 0.0;
			jbzyffcz += !isFinancial ? safeParseDouble(item.getZy()) : 0.0;
			jbjccz += isFinancial ? safeParseDouble(item.getJq()) : 0.0;
			jbjcffcz += !isFinancial ? safeParseDouble(item.getJq()) : 0.0;
			jbdxcz += isFinancial ? safeParseDouble(item.getDx()) : 0.0;
			jbdxffcz += !isFinancial ? safeParseDouble(item.getDx()) : 0.0;
			jbxxcz += isFinancial ? safeParseDouble(item.getXx()) : 0.0;
			jbxxffcz += !isFinancial ? safeParseDouble(item.getXx()) : 0.0;
			jbwzcz += isFinancial ? safeParseDouble(item.getWz()) : 0.0;
			jbwzffcz += !isFinancial ? safeParseDouble(item.getWz()) : 0.0;
			jbtdcz += isFinancial ? safeParseDouble(item.getTd()) : 0.0;
			jbtdffcz += !isFinancial ? safeParseDouble(item.getTd()) : 0.0;
			jbazcz += isFinancial ? safeParseDouble(item.getAz()) : 0.0;
			jbazffcz += !isFinancial ? safeParseDouble(item.getAz()) : 0.0;
			jbdspzcz += isFinancial ? safeParseDouble(item.getDspz()) : 0.0;
			jbdspzffcz += !isFinancial ? safeParseDouble(item.getDspz()) : 0.0;
			jbcqcz += isFinancial ? safeParseDouble(item.getCq()) : 0.0;
			jbcqffcz += !isFinancial ? safeParseDouble(item.getCq()) : 0.0;
			jbgwccz += isFinancial ? safeParseDouble(item.getGwc()) : 0.0;
			jbgwcffcz += !isFinancial ? safeParseDouble(item.getGwc()) : 0.0;
			jbqtcz += isFinancial ? safeParseDouble(item.getQt()) : 0.0;
			jbqtffcz += !isFinancial ? safeParseDouble(item.getQt()) : 0.0;
			jbwwcz += isFinancial ? safeParseDouble(item.getWw()) : 0.0;
			jbwwffcz += !isFinancial ? safeParseDouble(item.getWw()) : 0.0;
			jbwxzccz += isFinancial ? safeParseDouble(item.getWxzc()) : 0.0;
			jbwxzcffcz += !isFinancial ? safeParseDouble(item.getWxzc()) : 0.0;
			jbzbxzcz += isFinancial ? safeParseDouble(item.getZbxzc()) : 0.0;
			jbzbxzcffcz += !isFinancial ? safeParseDouble(item.getZbxzc()) : 0.0;
		}

// 商品和服务支出（排序25-49）
		resultList.add(createZqkzb("商品和服务支出", "办公费", bgfcz + jbbgfcz, bhffcz + jbbgffcz, 25, "1.人员定额500元/人*人数=\n" +
				"2.\n" +
				"3.", ""));
		resultList.add(createZqkzb("商品和服务支出", "印刷费", ysfcz + jbyscz, ysffcz + jbysffcz, 26, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "手续费", sxfcz + jbsxcz, sxffcz + jbsxffcz, 27, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "水费", sfcz + jbsfcz, sffcz + jbsffcz, 28, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "电费", dfcz + jbdfcz, dffcz + jbdffcz, 29, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "邮电费", ydfcz + jbydcz, ydffcz + jbydffcz, 30, "电话费  万元，网络费  万元，邮寄费  万元。", ""));
		resultList.add(createZqkzb("商品和服务支出", "取暖费", qnfcz + jbqycz, qnffcz + jbqynffcz, 31, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "物业管理费", wyglfcz + jbwycz, wyglffcz + jbwyffcz, 32, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "差旅费", clfcz + jbclcz, clffcz + jbclffcz, 33, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "因公出国境费用", ygcjfcz + jbcgcz, ygcjffcz + jbcgffcz, 34, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "维修护费", whfcz + jbwxcz, whffcz + jbwxffcz, 35, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "租赁费", zlfcz + jbzlcz, zlffcz + jbzlffcz, 36, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "会议费", hyfcz + jbhycz, hyffcz + jbhyffcz, 37, "参加会议  万元；举办会议  万元。", ""));
		resultList.add(createZqkzb("商品和服务支出", "培训费", pxfcz + jbpxcz, pxffcz + jbpxffcz, 38, "参加培训  万元；举办培训  万元。", ""));
		resultList.add(createZqkzb("商品和服务支出", "公务接待费", gwjdfcz + jbgwjdcz, gwjdffcz + jbgwjdffcz, 39, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "专用材料费", zyclcz + jbztclcz, zyclffcz + jbztclffcz, 40, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "被装购置费", bzgzfcz + jbbzcz, bzgzfffcz + jbbzffcz, 41, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "专用燃料费", zyrlfcz + jbzyrlcz, zyrlffcz + jbzyrlffcz, 42, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "劳务费", lwfcz + jblwcz, lwffcz + jblwffcz, 43, "", "包括评审费。"));
		resultList.add(createZqkzb("商品和服务支出", "委托业务费", wtywfcz + jbwtcz, wtywffcz + jbwtffcz, 44, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "工会经费", ghjfcz + jbghcz, ghjffcz + jbghffcz, 45, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "公务用车运行维护费", gwcyccz + jbgwcz, gwcycffcz + jbgwffcz, 46, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "其他交通费用", qtjtfycz + jbqtjtcz, qtjtfyffcz + jbqtjtffcz, 47, "", ""));
		resultList.add(createZqkzb("商品和服务支出", "税金及附加费用", sjcz + jbsjcz, sjffcz + jbsjffcz, 48, "", "1.增值税税额=合同金额/（1+6%）*0.06；\n" +
				"2、附件税（教育税金附加、地方教育税金附加、城建税）=增值税税额*（3%+2%+7%）；\n" +
				"3、印花税注意查找税目（不同）"));
		resultList.add(createZqkzb("商品和服务支出", "其他商品和服务支出", qtspcz + jbqtspcz, qtspffcz + jbqtspffcz, 49, "午餐补助    万元=人数*标准*22天*12月；疗养费   万元=人数*标准。", "预计的上缴20%院科研发展基金不要在此填列，直接冲减当年成果转化收入"));
		resultList.add(createZqkzb("对个人和家庭的补助", "离休费", 0.0, 0.0, 51, "", ""));
		resultList.add(createZqkzb("对个人和家庭的补助", "退休费", 0.0, 0.0, 52, "", ""));
		resultList.add(createZqkzb("对个人和家庭的补助", "退职役费", 0.0, 0.0, 53, "", ""));
		resultList.add(createZqkzb("对个人和家庭的补助", "抚恤金", 0.0, 0.0, 54, "", ""));
		resultList.add(createZqkzb("对个人和家庭的补助", "其中在职人员", 0.0, 0.0, 55, "", ""));
		resultList.add(createZqkzb("对个人和家庭的补助", "离退休人员", 0.0, 0.0, 56, "", ""));
		resultList.add(createZqkzb("对个人和家庭的补助","生活补助",0.0,0.0,57,"",""));
		resultList.add(createZqkzb("对个人和家庭的补助","救济费",0.0,0.0,58,"",""));
		resultList.add(createZqkzb("对个人和家庭的补助","医疗费补助",0.0,0.0,59,"",""));
		resultList.add(createZqkzb("对个人和家庭的补助","助学金",0.0,0.0,60,"",""));
		resultList.add(createZqkzb("对个人和家庭的补助","奖励金",0.0,0.0,61,"",""));
		resultList.add(createZqkzb("对个人和家庭的补助","个人农业生产补贴",0.0,0.0,62,"",""));
		resultList.add(createZqkzb("对个人和家庭的补助","代缴社会保险费",0.0,0.0,63,"",""));
		resultList.add(createZqkzb("对个人和家庭的补助","其他对个人和家庭的补助",0.0,0.0,64,"",""));
		resultList.add(createZqkzb("资本性支出", "房屋建筑物购建", fwcz + jbfwcz, fwffcz + jbfwffcz, 66, "", ""));
		resultList.add(createZqkzb("资本性支出", "办公设备购置", bgcz + jbbgcz2, bgffcz + jbbgffcz2, 67, "", ""));
		resultList.add(createZqkzb("资本性支出", "专用设备购置", zycz + jbzycz, zyffcz + jbzyffcz, 68, "", ""));
		resultList.add(createZqkzb("资本性支出", "基础设施建设", jccz + jbjccz, jcffcz + jbjcffcz, 69, "", ""));
		resultList.add(createZqkzb("资本性支出", "大型修缮", dxcz + jbdxcz, dxffcz + jbdxffcz, 70, "", ""));
		resultList.add(createZqkzb("资本性支出", "信息网络及软件购置更新", xxcz + jbxxcz, xxffcz + jbxxffcz, 71, "", ""));
		resultList.add(createZqkzb("资本性支出", "物资储备", wzcz + jbwzcz, wzffcz + jbwzffcz, 72, "", ""));
		resultList.add(createZqkzb("资本性支出", "土地补偿", tdcz + jbtdcz, tdffcz + jbtdffcz, 73, "", ""));
		resultList.add(createZqkzb("资本性支出", "安置补助", azcz + jbazcz, azffcz + jbazffcz, 74, "", ""));
		resultList.add(createZqkzb("资本性支出", "地上附着物和青苗补偿", dsfzwcz + jbdspzcz, dsfzwffcz + jbdspzffcz, 75, "", ""));
		resultList.add(createZqkzb("资本性支出", "拆迁补偿", cqcz + jbcqcz, cqffcz + jbcqffcz, 76, "", ""));
		resultList.add(createZqkzb("资本性支出", "公务用车购置", gwccz + jbgwccz, gwcffcz + jbgwcffcz, 77, "", ""));
		resultList.add(createZqkzb("资本性支出", "其他交通工具购置", qtjtcz + jbqtcz, qtjtffcz + jbqtffcz, 78, "", ""));
		resultList.add(createZqkzb("资本性支出", "文物和陈列品购置", wwclcz1 + jbwwcz, wwclffcz1 + jbwwffcz, 79, "", ""));
		resultList.add(createZqkzb("资本性支出", "无形资产购置", wwclcz2 + jbwxzccz, wwclffcz2 + jbwxzcffcz, 80, "", ""));
		resultList.add(createZqkzb("资本性支出", "其他资本性支出", qtzbszcz + jbzbxzcz, qtzbszcffcz + jbzbxzcffcz, 81, "", ""));

		return resultList;
	}
	/**
	 * 将字符串安全转换为Double
	 * @param str 待转换的字符串
	 * @return 转换后的Double，若转换失败返回0.0
	 */
	private Double safeParseDouble(String str) {
		if (str == null || str.trim().isEmpty()) {
			return 0.0; // 空值或空白视为0
		}
		try {
			return Double.parseDouble(str.trim()); // 去除空格后转换
		} catch (NumberFormatException e) {
			// 处理非数字格式的情况（如"abc"、"12.3.4"等）

			return 0.0; // 转换失败时返回默认值，也可根据业务需求抛出异常
		}
	}
	/**
	 * 创建CwJbszqkzb对象（提取重复的对象初始化逻辑）
	 */
	private CwJbszqkzb createZqkzb(String disbursementType, String project, double financial, double nonFinancials, int cwPx, String calculationBasis, String cwTbsm) {
		CwJbszqkzb zqkzb = new CwJbszqkzb();
		zqkzb.setDisbursementType(disbursementType);
		zqkzb.setProject(project);
		zqkzb.setFinancial(financial);
		zqkzb.setNonFinancials(nonFinancials);
		zqkzb.setCwPx(cwPx);
		zqkzb.setCalculationBasis(calculationBasis);
		zqkzb.setCwTbsm(cwTbsm);
		return zqkzb;
	}
	@Override
	@Transactional(rollbackFor = Exception.class)
	public void updateMain(CwJbszqkzbZhu cwJbszqkzbZhu,List<CwJbszqkzb> cwJbszqkzbList) {
		LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
		String departIdsByOrgCode = iSysBaseAPI.getDepartIdsByOrgCode(user.getOrgCode());
		SysDepart byId = sysDepartService.getById(departIdsByOrgCode);
		String departName = byId.getDepartName();
		String id = user.getId();
		cwJbszqkzbZhuMapper.updateById(cwJbszqkzbZhu);
		//1.先删除子表数据
		cwJbszqkzbMapper.deleteByMainId(cwJbszqkzbZhu.getId());
		//事业收入
		Double sysr=0.0;
		//其他收入
		Double qtsr=0.0;
		//使用非财政拨款结余
		Double fczbk=0.0;
		//住房公积金
		Double zfgjj=0.0;
		//其中在职人员(qzzzry-jljj)
		Double qzzzry=0.0;
		//奖励金
		Double jljj=0.0;
		//2.子表数据重新插入
		if(cwJbszqkzbList!=null && cwJbszqkzbList.size()>0) {
			for(CwJbszqkzb entity:cwJbszqkzbList) {
				Double financial = entity.getFinancial();
				Double nonFinancials = entity.getNonFinancials();
				entity.setYsshj(financial+nonFinancials);
				entity.setUnit(departName);
				if ("事业收入".equals(entity.getProject())){
					sysr=entity.getYsshj();
				}
				if ("其他收入".equals(entity.getProject())){
					qtsr=entity.getYsshj();
				}
				if ("使用非财政拨款结余".equals(entity.getProject())){
					fczbk=entity.getYsshj();
				}
				if ("住房公积金".equals(entity.getProject())){
					zfgjj=entity.getYsshj();
				}
				if ("其中在职人员".equals(entity.getProject())){
					qzzzry=entity.getYsshj();
				}
				if ("奖励金".equals(entity.getProject())){
					jljj=entity.getYsshj();
				}
				//外键设置
				entity.setMainId(cwJbszqkzbZhu.getId());
				cwJbszqkzbMapper.insert(entity);
			}
		}
//
//
//		LambdaQueryWrapper<CwJbszqkzb> cwJbszqkzbLambdaQueryWrapper = new LambdaQueryWrapper<>();
//		cwJbszqkzbLambdaQueryWrapper.in(CwJbszqkzb::getProject,
//						"上年结转", "财政拨款收入", "事业收入", "其他收入", "使用非财政拨款结余")
//				.eq(CwJbszqkzb::getUnit,departName)
//				.eq(CwJbszqkzb::getYear,cwJbszqkzbZhu.getYear());
//		Double hj =0.0;
//		Double cz=0.0;
//		Double fcz=0.0;
//		for (CwJbszqkzb cwJbszqkzb : cwJbszqkzbMapper.selectList(cwJbszqkzbLambdaQueryWrapper)) {
//			Double ysshj = cwJbszqkzb.getYsshj();
//			Double financial = cwJbszqkzb.getFinancial();
//			Double nonFinancials = cwJbszqkzb.getNonFinancials();
//			if (ysshj==null){
//				cwJbszqkzb.setYsshj(0.0);
//			}else if (financial==null){
//				cwJbszqkzb.setFinancial(0.0);
//			}else if (nonFinancials==null){
//				cwJbszqkzb.setNonFinancials(0.0);
//			}
//			hj +=cwJbszqkzb.getYsshj();
//			cz+=cwJbszqkzb.getFinancial();
//			fcz+=cwJbszqkzb.getNonFinancials();
//		}
//		LambdaQueryWrapper<CwJbszqkzb> cwJbszqkzbLambdaQueryWrapper1 = new LambdaQueryWrapper<>();
//		cwJbszqkzbLambdaQueryWrapper1.eq(CwJbszqkzb::getProject,"收入合计")
//				.eq(CwJbszqkzb::getUnit,departName)
//				.eq(CwJbszqkzb::getYear,cwJbszqkzbZhu.getYear());;
//		CwJbszqkzb one = cwJbszqkzbMapper.selectOne(cwJbszqkzbLambdaQueryWrapper1);
//
//		if (one == null) {
//			CwJbszqkzb cwJbszqkzb = new CwJbszqkzb();
//			cwJbszqkzb.setProject("收入合计");
//			cwJbszqkzb.setUnit(cwJbszqkzbZhu.getUnit());
//			cwJbszqkzb.setFinancial(cz);
//			cwJbszqkzb.setYear(cwJbszqkzbZhu.getYear());
//			cwJbszqkzb.setNonFinancials(fcz);
//			cwJbszqkzb.setYsshj(hj);
//			cwJbszqkzb.setCwPx(0);
//			cwJbszqkzb.setUserId(id);
//			cwJbszqkzb.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.insert(cwJbszqkzb);
//		} else {
//			one.setProject("收入合计");
//			one.setYear(cwJbszqkzbZhu.getYear());
//			one.setUnit(cwJbszqkzbZhu.getUnit());
//			one.setFinancial(cz);
//			one.setNonFinancials(fcz);
//			one.setYsshj(hj);
//			one.setCwPx(0);
//			one.setUserId(id);
//			one.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.updateById(one);
//		}
//		//计算工资福利支出合计
//		LambdaQueryWrapper<CwJbszqkzb> wrapper = new LambdaQueryWrapper<>();
//		wrapper.in(CwJbszqkzb::getProject,
//						"基本工资", "津贴补贴", "奖金", "伙食补助费", "绩效工资","机关事业单位基本养老保险缴费",
//						"职业年金缴费","职工基本医疗保险缴费","其他社会保障缴费","住房公积金","医疗费","其他工资福利支出")
//				.eq(CwJbszqkzb::getUnit,departName)
//				.eq(CwJbszqkzb::getYear,cwJbszqkzbZhu.getYear());
//
//		Double acaizheng=0.0;
//		Double afeicaizheng=0.0;
//		for (CwJbszqkzb cwJbszqkzb : cwJbszqkzbMapper.selectList(wrapper)) {
//
//			Double financial = cwJbszqkzb.getFinancial();
//			Double nonFinancials = cwJbszqkzb.getNonFinancials();
//			if (financial==null){
//				cwJbszqkzb.setFinancial(0.0);
//			}else if (nonFinancials==null){
//				cwJbszqkzb.setNonFinancials(0.0);
//			}
//
//			acaizheng+=cwJbszqkzb.getFinancial();
//			afeicaizheng+=cwJbszqkzb.getNonFinancials();
//		}
//		LambdaQueryWrapper<CwJbszqkzb> wrapper1 = new LambdaQueryWrapper<>();
//		wrapper1.eq(CwJbszqkzb::getProject,"工资福利支出小计")
//				.eq(CwJbszqkzb::getUnit,departName)
//				.eq(CwJbszqkzb::getYear,cwJbszqkzbZhu.getYear());
//		CwJbszqkzb one1 = cwJbszqkzbMapper.selectOne(wrapper1);
//		if (one1 == null) {
//			CwJbszqkzb cwJbszqkzb = new CwJbszqkzb();
//			cwJbszqkzb.setProject("工资福利支出小计");
//			cwJbszqkzb.setUnit(cwJbszqkzbZhu.getUnit());
//			cwJbszqkzb.setYear(cwJbszqkzbZhu.getYear());
//			cwJbszqkzb.setFinancial(acaizheng);
//			cwJbszqkzb.setNonFinancials(afeicaizheng);
//			cwJbszqkzb.setYsshj(acaizheng+afeicaizheng);
//			cwJbszqkzb.setCwPx(11);
//			cwJbszqkzb.setUserId(id);
//			cwJbszqkzb.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.insert(cwJbszqkzb);
//		} else {
//			one1.setProject("工资福利支出小计");
//			one1.setUnit(cwJbszqkzbZhu.getUnit());
//			one1.setYear(cwJbszqkzbZhu.getYear());
//			one1.setFinancial(acaizheng);
//			one1.setNonFinancials(afeicaizheng);
//			one1.setYsshj(acaizheng+afeicaizheng);
//			one1.setCwPx(11);
//			one1.setUserId(id);
//			one1.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.updateById(one1);
//		}
//
//		Double bcaizheng=0.0;
//		Double bfeicaizheng=0.0;
//		LambdaQueryWrapper<CwJbszqkzb> wrapper4 = new LambdaQueryWrapper<>();
//		wrapper4.in(CwJbszqkzb::getProject,
//						"办公费", "印刷费", "手续费", "水费", "电费","邮电费","其他交通费用","税金及附加费用","其他商品和服务支出","取暖费","物业管理费","差旅费"
//						,"公务接待费","专用材料费","被装购置费","专用燃料费","劳务费","委托业务费","工会经费","租赁费","会议费","培训费","公务用车运行维护费",
//						"因公出国境费用","维修护费"
//						)
//				.eq(CwJbszqkzb::getUnit,departName)
//				.eq(CwJbszqkzb::getYear,cwJbszqkzbZhu.getYear());
//		int size = cwJbszqkzbMapper.selectList(wrapper4).size();
//
//		for (CwJbszqkzb cwJbszqkzb : cwJbszqkzbMapper.selectList(wrapper4)) {
//
//			Double financial = cwJbszqkzb.getFinancial();
//			Double nonFinancials = cwJbszqkzb.getNonFinancials();
//			if (financial==null){
//				cwJbszqkzb.setFinancial(0.0);
//			}else if (nonFinancials==null){
//				cwJbszqkzb.setNonFinancials(0.0);
//			}
//
//			bcaizheng+=cwJbszqkzb.getFinancial();
//			bfeicaizheng+=cwJbszqkzb.getNonFinancials();
//		}
//		LambdaQueryWrapper<CwJbszqkzb> wrapper3 = new LambdaQueryWrapper<>();
//		wrapper3.eq(CwJbszqkzb::getProject,"商品和服务支出小计")
//				.eq(CwJbszqkzb::getUnit,departName)
//				.eq(CwJbszqkzb::getYear,cwJbszqkzbZhu.getYear());
//		CwJbszqkzb one2 = cwJbszqkzbMapper.selectOne(wrapper3);
//		if (one2 == null) {
//			CwJbszqkzb cwJbszqkzb = new CwJbszqkzb();
//			cwJbszqkzb.setYear(cwJbszqkzbZhu.getYear());
//			cwJbszqkzb.setProject("商品和服务支出小计");
//			cwJbszqkzb.setUnit(cwJbszqkzbZhu.getUnit());
//			cwJbszqkzb.setFinancial(bcaizheng);
//			cwJbszqkzb.setNonFinancials(bfeicaizheng);
//			cwJbszqkzb.setYsshj(bcaizheng+bfeicaizheng);
//			cwJbszqkzb.setCwPx(24);
//			cwJbszqkzb.setUserId(id);
//			cwJbszqkzb.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.insert(cwJbszqkzb);
//		} else {
//			one2.setProject("商品和服务支出小计");
//			one2.setUnit(cwJbszqkzbZhu.getUnit());
//			one2.setFinancial(bcaizheng);
//			one2.setNonFinancials(bfeicaizheng);
//			one2.setYsshj(bcaizheng+bfeicaizheng);
//			one2.setYear(cwJbszqkzbZhu.getYear());
//			one2.setCwPx(24);
//			one2.setUserId(id);
//			one2.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.updateById(one2);
//		}
//
//		Double ccaizheng=0.0;
//		Double cfeicaizheng=0.0;
//		LambdaQueryWrapper<CwJbszqkzb> wrapper5= new LambdaQueryWrapper<>();
//		wrapper5.in(CwJbszqkzb::getProject,
//						"离休费", "退休费", "退职役费","抚恤金","其中在职人员",
//						"离退休人员","生活补助","救济费","医疗费补助","助学金","奖励金","个人农业生产补贴","代缴社会保险费"
//						,"其他对个人和家庭的补助")
//				.eq(CwJbszqkzb::getUnit,departName)
//				.eq(CwJbszqkzb::getYear,cwJbszqkzbZhu.getYear());
//		for (CwJbszqkzb cwJbszqkzb : cwJbszqkzbMapper.selectList(wrapper5)) {
//
//			Double financial = cwJbszqkzb.getFinancial();
//			Double nonFinancials = cwJbszqkzb.getNonFinancials();
//			if (financial==null){
//				cwJbszqkzb.setFinancial(0.0);
//			}else if (nonFinancials==null){
//				cwJbszqkzb.setNonFinancials(0.0);
//			}
//			ccaizheng+=cwJbszqkzb.getFinancial();
//			cfeicaizheng+=cwJbszqkzb.getNonFinancials();
//		}
//
//		LambdaQueryWrapper<CwJbszqkzb> wrapper6 = new LambdaQueryWrapper<>();
//		wrapper6.eq(CwJbszqkzb::getProject,"对个人和家庭的补助小计")
//				.eq(CwJbszqkzb::getUnit,departName)
//				.eq(CwJbszqkzb::getYear,cwJbszqkzbZhu.getYear());
//		CwJbszqkzb one3 = cwJbszqkzbMapper.selectOne(wrapper6);
//		if (one3 == null) {
//			CwJbszqkzb cwJbszqkzb = new CwJbszqkzb();
//			cwJbszqkzb.setProject("对个人和家庭的补助小计");
//			cwJbszqkzb.setUnit(cwJbszqkzbZhu.getUnit());
//			cwJbszqkzb.setYear(cwJbszqkzbZhu.getYear());
//			cwJbszqkzb.setFinancial(ccaizheng);
//			cwJbszqkzb.setNonFinancials(cfeicaizheng);
//			cwJbszqkzb.setYsshj(ccaizheng+cfeicaizheng);
//			cwJbszqkzb.setCwPx(50);
//			cwJbszqkzb.setUserId(id);
//			cwJbszqkzb.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.insert(cwJbszqkzb);
//		} else {
//			one3.setProject("小计   ");
//			one3.setUnit(cwJbszqkzbZhu.getUnit());
//			one3.setFinancial(ccaizheng);
//			one3.setNonFinancials(cfeicaizheng);
//			one3.setYsshj(ccaizheng+cfeicaizheng);
//			one3.setCwPx(50);
//			one3.setYear(cwJbszqkzbZhu.getYear());
//			one3.setUserId(id);
//			one3.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.updateById(one3);
//		}
//
//
//		Double dcaizheng=0.0;
//		Double dfeicaizheng=0.0;
//		LambdaQueryWrapper<CwJbszqkzb> wrapper7 = new LambdaQueryWrapper<>();
//		wrapper7.in(CwJbszqkzb::getProject,
//						"房屋建筑物购建", "办公设备购置", "专用设备购置", "基础设施建设", "大型修缮",
//						"信息网络及软件购置更新",
//						"物资储备","土地补偿","安置补助","地上附着物和青苗补偿","拆迁补偿","公务用车购置",
//						"其他交通工具购置","文物和陈列品购置"
//						,"无形资产购置","其他资本性支出")
//				.eq(CwJbszqkzb::getUnit,departName)
//				.eq(CwJbszqkzb::getYear,cwJbszqkzbZhu.getYear());
//		for (CwJbszqkzb cwJbszqkzb : cwJbszqkzbMapper.selectList(wrapper7)) {
//
//			Double financial = cwJbszqkzb.getFinancial();
//			Double nonFinancials = cwJbszqkzb.getNonFinancials();
//			if (financial==null){
//				cwJbszqkzb.setFinancial(0.0);
//			}else if (nonFinancials==null){
//				cwJbszqkzb.setNonFinancials(0.0);
//			}
//			dcaizheng+=cwJbszqkzb.getFinancial();
//			dfeicaizheng+=cwJbszqkzb.getNonFinancials();
//		}
//		LambdaQueryWrapper<CwJbszqkzb> wrapper8 = new LambdaQueryWrapper<>();
//		wrapper8.eq(CwJbszqkzb::getProject,"资本性支出小计")
//				.eq(CwJbszqkzb::getUnit,departName)
//				.eq(CwJbszqkzb::getYear,cwJbszqkzbZhu.getYear());
//		CwJbszqkzb one4 = cwJbszqkzbMapper.selectOne(wrapper8);
//		if (one4 == null) {
//			CwJbszqkzb cwJbszqkzb = new CwJbszqkzb();
//			cwJbszqkzb.setProject("资本性支出小计");
//			cwJbszqkzb.setUnit(cwJbszqkzbZhu.getUnit());
//			cwJbszqkzb.setYear(cwJbszqkzbZhu.getYear());
//			cwJbszqkzb.setFinancial(dcaizheng);
//			cwJbszqkzb.setNonFinancials(dfeicaizheng);
//			cwJbszqkzb.setYsshj(dcaizheng+dfeicaizheng);
//			cwJbszqkzb.setCwPx(65);
//			cwJbszqkzb.setUserId(id);
//			cwJbszqkzb.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.insert(cwJbszqkzb);
//		} else {
//			one4.setProject("资本性支出小计");
//			one4.setUnit(cwJbszqkzbZhu.getUnit());
//			one4.setFinancial(dcaizheng);
//			one4.setYear(cwJbszqkzbZhu.getYear());
//			one4.setNonFinancials(dfeicaizheng);
//			one4.setYsshj(dcaizheng+dfeicaizheng);
//			one4.setCwPx(65);
//			one4.setUserId(id);
//			one4.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.updateById(one4);
//		}
//		Double heji=acaizheng+bcaizheng+ccaizheng+dcaizheng+afeicaizheng+bfeicaizheng+cfeicaizheng+dfeicaizheng;
//		LambdaQueryWrapper<CwJbszqkzb> wrapper9 = new LambdaQueryWrapper<>();
//		wrapper9.eq(CwJbszqkzb::getProject,"支出合计")
//				.eq(CwJbszqkzb::getUnit,departName)
//				.eq(CwJbszqkzb::getYear,cwJbszqkzbZhu.getYear());
//		CwJbszqkzb one5 = cwJbszqkzbMapper.selectOne(wrapper9);
//		if (one5 == null) {
//			CwJbszqkzb cwJbszqkzb = new CwJbszqkzb();
//			cwJbszqkzb.setProject("支出合计");
//			cwJbszqkzb.setYear(cwJbszqkzbZhu.getYear());
//			cwJbszqkzb.setUnit(cwJbszqkzbZhu.getUnit());
//			cwJbszqkzb.setFinancial(acaizheng+bcaizheng+ccaizheng+dcaizheng);
//			cwJbszqkzb.setNonFinancials(afeicaizheng+bfeicaizheng+cfeicaizheng+dfeicaizheng);
//			cwJbszqkzb.setYsshj(heji);
//			cwJbszqkzb.setCwPx(10);
//			cwJbszqkzb.setUserId(id);
//			cwJbszqkzb.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.insert(cwJbszqkzb);
//		} else {
//			one5.setProject("支出合计");
//			one5.setYear(cwJbszqkzbZhu.getYear());
//			one5.setUnit(cwJbszqkzbZhu.getUnit());
//			one5.setFinancial(acaizheng+bcaizheng+ccaizheng+dcaizheng);
//			one5.setNonFinancials(afeicaizheng+bfeicaizheng+cfeicaizheng+dfeicaizheng);
//			one5.setYsshj(heji);
//			one5.setCwPx(10);
//			one5.setUserId(id);
//			one5.setMainId(cwJbszqkzbZhu.getId());
//			cwJbszqkzbMapper.updateById(one5);
//		}
//		LambdaQueryWrapper<CwXmzcsrb> cwXmzcsrbLambdaQueryWrapper = new LambdaQueryWrapper<>();
//		cwXmzcsrbLambdaQueryWrapper.eq(CwXmzcsrb::getYear,cwJbszqkzbZhu.getYear())
//				.eq(CwXmzcsrb::getUnit,departName);
//		Double a=0.0;
//		Double b=0.0;
//		Double c=0.0;
//		for (CwXmzcsrb cwXmzcsrb : cwXmzcsrbService.list(cwXmzcsrbLambdaQueryWrapper)) {
//			Double undertakingRevenue = cwXmzcsrb.getUndertakingRevenue();
//			Double otherRevenue = cwXmzcsrb.getOtherRevenue();
//			Double fczbkjy = cwXmzcsrb.getFczbkjy();
//			if (undertakingRevenue==null){
//				undertakingRevenue=0.0;
//			}else if (otherRevenue==null){
//				otherRevenue=0.0;
//			}else if (fczbkjy==null){
//				fczbkjy=0.0;
//			}
//			a+= undertakingRevenue;
//			b+=otherRevenue;
//			c+=fczbkjy;
//		}
//
//		//添加事业收入事业收入
//		LambdaQueryWrapper<CwSzzb> cwSzzbLambdaQueryWrapper = new LambdaQueryWrapper<>();
//		cwSzzbLambdaQueryWrapper.eq(CwSzzb::getYear,cwJbszqkzbZhu.getYear())
//				.eq(CwSzzb::getUnit,departName);
//		CwSzzb one6 = cwSzzbService.getOne(cwSzzbLambdaQueryWrapper);
//		if (one6==null){
//			one6=new CwSzzb();
//			one6.setState("待提交");
//			one6.setYear(cwJbszqkzbZhu.getYear());
//			one6.setUserId(id);
//			one6.setSysr(sysr);
//			one6.setUnit(cwJbszqkzbZhu.getUnit());
//			one6.setQtsr(qtsr);
//			one6.setZfbzzc(zfgjj);
//			one6.setShbz(ccaizheng+cfeicaizheng-(qzzzry-jljj));
//			one6.setNkgg(((acaizheng+afeicaizheng)-zfgjj+zfgjj+jljj)+(dcaizheng+dfeicaizheng)+(bcaizheng+bfeicaizheng));
//			one6.setFc(fczbk);
//			cwSzzbService.save(one6);
//		}else {
//			one6.setState( one6.getState());
//			one6.setSysr(a+sysr);
//			one6.setQtsr(b+qtsr);
//			one6.setFc(c+fczbk);
//			one6.setUnit(cwJbszqkzbZhu.getUnit());
//			one6.setZfbzzc(zfgjj);
//			one6.setShbz(ccaizheng+cfeicaizheng-(qzzzry-jljj));
//			one6.setYear(cwJbszqkzbZhu.getYear());
//			one6.setNkgg(((acaizheng+afeicaizheng)-zfgjj+zfgjj+jljj)+(dcaizheng+dfeicaizheng)+(bcaizheng+bfeicaizheng));
//			one6.setUserId(id);
//			cwSzzbService.updateById(one6);
//		}

	}
	@Override
	@Transactional(rollbackFor = Exception.class)
	public void delMain(String id) {
		cwJbszqkzbMapper.deleteByMainId(id);
		cwJbszqkzbZhuMapper.deleteById(id);
	}

	@Override
	@Transactional(rollbackFor = Exception.class)
	public void delBatchMain(Collection<? extends Serializable> idList) {
		for(Serializable id:idList) {
			cwJbszqkzbMapper.deleteByMainId(id.toString());
			cwJbszqkzbZhuMapper.deleteById(id);
		}
	}

}
